package com.example.my_project.utils;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Random;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Author: chenbo
 * @Description:
 * @Date: Created in 14:57 2018/7/6
 * @Modified By:
 */
public class StringUtils extends org.springframework.util.StringUtils {

    static Logger logger = LogManager.getLogger( StringUtils.class );

    /**
     * 检查字符串 M_str 是否包含字符串 C_str
     * @param M_str         被检查字符串
     * @param C_str     验证被检测字符串中包含的字符串
     * @return
     */
    public static boolean isContains( String M_str , String C_str ){

        if (M_str.indexOf ( C_str ) != -1) {
            logger.info ( M_str + " [包含] " + C_str );
            return true;
        }else {
            logger.info ( M_str + " [不包含] " + C_str );
            return false;
        }
    }

    /**
     * 检查字符串 M_str 是否包含字符串 C_str
     * 该检查忽略大小写，故，将 M_str 和 C_str 都转换为小写之后在比较
     * @param M_str         被检查字符串
     * @param C_str     验证被检测字符串中包含的字符串
     * @return
     */
    public static boolean isIgnoreContains( String M_str , String C_str ){

        if (M_str.toLowerCase ().indexOf ( C_str.toLowerCase () ) != -1) {
            logger.info ( M_str + " [包含] " + C_str );
            return true;
        }else {
            logger.info ( M_str + " [不包含] " + C_str );
            return false;
        }
    }

    /**
     * 获取 uuid / uuk
     * @return
     */
    public static String getUUID(){

        String uuid = UUID.randomUUID().toString();

        return uuid;
    }

    /**
     * 正则表达式匹配
     * @param regex 正则表达式
     * @param body  查询的 string
     * @return
     */
    public static Matcher matcher(String regex , String body){

        Pattern pattern = Pattern.compile ( regex );

        Matcher matcher = pattern.matcher( body );

        return matcher;
    }

    /**
     * 短信验证吗截取
     * @param SMS   包含验证吗的短信
     * @return
     */
    public static String code( String SMS){
        String regEx = "[^0-9]";//匹配指定范围内的数字

        Matcher m = matcher ( regEx , SMS );

        //将输入的字符串中非数字部分用空格取代并存入一个字符串
        return m.replaceAll ( "" ).substring ( 0,6 );
    }

    public static int random( int ls ){
        return new Random().nextInt(ls);
    }
}
